package com.kaily.timemanager.db;

import com.kaily.timemanager.obj.Task;
import com.kaily.timemanager.obj.TaskClass;
import com.kaily.timemanager.obj.Think;

import java.util.List;

/**
 * Created by zhoulikai on 17/2/27.
 */

public interface AppDbInterface {

    /**
     * 任务类别操作
     */
    public interface ITaskClass {
        /**
         * 添加任务类别
         *
         * @param taskClass
         */
        public long addTaskClass(TaskClass taskClass);

        /**
         * 删除任务类别
         *
         * @param taskClass
         */
        public long deleteTaksClass(TaskClass taskClass);

        /**
         * 修改任务类别
         *
         * @param taskClass
         */
        public long updateTaskClass(TaskClass taskClass);

        /**
         * 返回所有任务
         *
         * @return
         */
        public List<TaskClass> getTaskClasses();

    }

    /**
     * 想想（记事本）操作
     */
    public interface IThink {
        /**
         * 添加一条想想
         *
         * @param think
         */
        public long addThink(Think think);

        /**
         * 返回所有的想想
         *
         * @return
         */
        public List<Think> getThinks();

        /**
         * 删除想想
         *
         * @param think
         * @return
         */
        public long deleteThink(Think think);

        /**
         * 更新想想
         *
         * @param think
         * @return
         */
        public long updateThink(Think think);
    }

    public interface ITask {
        /**
         * 添加任务
         *
         * @param task
         * @return
         */
        public long addTask(Task task);

        /**
         * 通过任务类别和parentId查找任务
         *
         * @param taskClassId
         * @param taskParentId
         * @return
         */
        public List<Task> getTasks(String taskClassId, String taskParentId);

        /**
         * 更新任务
         *
         * @param task
         * @return
         */
        public long updateTask(Task task);

        /**
         * 删除任务
         *
         * @param task
         * @return
         */
        public long deleteTask(Task task);

        public long deleteTask(TaskClass taskClass);

    }


}
